
export default {
    //查询文章列表
    // posts_copy: (root, { first }, { prisma }) => {
    //     return prisma.posts({
    //         where: {
    //完全匹配
    // title:"哈哈哈"

    //绝对不匹配
    // title_not:"title"

    //匹配包含该字段值的数据
    // title_in:["hehe1"]
    // title_not_in:["hehe1"]

    // field_lt/lte/gt/gte   小于 小于等于 大于 大于等于

    //包含该内容的数据
    // title_contains:"heafa"
    // title_not_contains:"heafa"
    //匹配以开头的数据
    // title_starts_with:"h"
    // title_ends_with:"h"
    // title_not_ends_with:"h"

    /**
     * 多条件匹配
     * AND 一个数组，数组内条件需要全部匹配
     * OR 一个数组，数组内条件只需一个匹配
     * NOT 一个数组，匹配除了该数组的其他数据
     */

    //             AND: [
    //                 {
    //                     title_in: ["hehe1"],
    //                     title_not_in: ["hehe1"]
    //                 }, {
    //                     //还可以这样套用
    //                     OR: [
    //                         { title_in: ["hehe1"] }
    //                     ]
    //                 }
    //             ]
    //         },
    //         first
    //     })
    // },


    // posts: (root, { first,id }, { prisma }) => {
    //     return prisma.user({id}).posts()
    // }


    //ASC  DESC
    //  posts: (root, { first,id }, { prisma }) => {
    //     return prisma.posts({orderBy:"title_DESC"})
    // },

    //分页查询：针对常规分页
    posts: (root, { first, skip }, { prisma }) => {
        return prisma.posts({ first, skip, orderBy: "title_DESC" })
    },

    //连接查询
    //cursor:上一次查询的最后一条数据，通常是id
    connectPosts: (root, { first,cursor }, { prisma }) => {
        //如下也可以实现分页查询，不过一般针对无限滚动的更多数据
        return prisma.postsConnection({
            first,
            after:cursor
        })
    },

    //聚合查询解析器
    aggregatePosts: async (root, { args }, { prisma }) => {
        const count = prisma.postsConnection().aggregate().count();
        return {
            count,
            posts: prisma.posts(args)
        }
    }



    // posts: (root, { first,id }, { prisma }) => {
    //     const fragment = `
    //     fragment fragmentWithPost on Post {
    //       id
    //       title
    //     }
    //     `
    //     return prisma.posts().$fragment(fragment)
    // }
}